package com.starmark.sys.org.atomic.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.starmark.core.framework.base.IUniqueBaseService;
import com.starmark.sys.org.api.dto.OrgElementDto;
import com.starmark.sys.org.atomic.entity.SysOrgUser;
import com.starmark.sys.org.atomic.vo.SysOrgUserPageQueryVo;
import com.starmark.sys.org.atomic.vo.SysOrgUserVo;

import java.util.List;


public interface ISysOrgUserService extends IUniqueBaseService<SysOrgUser> {


    /**
     * 通过登陆名，查找对应的用户
     *
     * @param loginName 登陆名
     * @return 用户信息
     */
    SysOrgUser findUserByLoginName(String loginName);



    /**
     * 查找用户分页
     * @param pageQueryVo 分页记录
     * @return  有权限的用户分页
     */
    Page<SysOrgUser> selectUserPage(SysOrgUserPageQueryVo pageQueryVo );


    /**
     * 通过父节点，查找下级人员信息
     *
     * @param id 父ID
     * @return 人员信息集合
     */

    List<OrgElementDto> getOrgTreeById(String id);

    /**
     * 校验用户密码是否正确
     *
     * @param userId   用户ID
     * @param password 用户密码// 暂时不加密
     * @return 是否正确
     */

    boolean checkUserPassword(String userId, String password);

    /**
     * 保存用户对象
     * @param sysOrgUserVo 用户对象
     * @return 用户主键
     */
    String saveUserInfo(SysOrgUserVo sysOrgUserVo);


    /**
     * 保存用户对象
     * @param sysOrgUserVo 用户对象
     * @return 用户主键
     */
    String updateUserInfo(SysOrgUserVo sysOrgUserVo);


    /**
     * 更新用户密码
     * @param userId 用户ID
     * @param password 密码
     */
    void updatePwd(String userId,String password);
}
